<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //数组去重方法
        let arr = [12, 24, 37, 37, 24, 49, 49, 55, 55]
        //new Set(arr),返回的是对象,用数组展开符或from方法变成数组
        // let newArr1=[...new Set(arr)];
        // let newArr2=Array.from(new Set(arr));
        // console.log(newArr1,newArr2);

        //filter过滤去重-过滤出第一次出现那个下标
        // let newArr = arr.filter((item, index, arrry) => {
        //     return arrry.indexOf(item) == index
        // })
        // console.log(newArr); 

        //json对象去重
        // let json1={}
        //  for (let i = 0; i < arr.length; i++) {
        //       let key=arr[i]
        //      if(json1[key]){
        //         json1[key]++
        //      }
        //      else{
        //         json1[key]=1  //给json对象增加键，同时赋值为1
        //      }
        //  }
        // console.log('对象',json1);// {12: 1, 24: 2, 37: 2, 49: 2, 55: 2}
        // console.log('数组',Object.keys(json1)); //['12', '24', '37', '49', '55'] 



        //对象里的键重复会自动覆盖
        //  let json={ b: 1, c: 1, d: 1,d:5}
        //   json.a=2
        //   json["e"]=3 //给json对象增加属性又赋值
        //   console.log(json); //{b: 1, c: 1, d: 5, a: 2, e: 3}


          

        //统计字符串中出现最多的字母与次数 原理:找是否重复出现
            //    var str = "bdcccccxxchh";
            //    //1.利用json键重复自动覆盖特点,去重
            //    let json={}
            //    for (let i = 0; i < str.length; i++) {
            //         let key=str[i]
            //        if(json[key]){
            //           json[key]++
            //        }
            //        else{
            //           json[key]=1  //给json对象增加键，同时赋值为1
            //        }
            //    }
            //   console.log("去重后的json",json); //{a: 9, b: 1, c: 1, d: 1}
      
            //    //2.找出最多的字母与次数
            //    let max=''  //最大值
            //    let i=''
            //    for (const key in json) {
            //         if(max<json[key]){
            //             max=json[key]
            //             i=key
            //         }
            //    }
            //   console.log('最多的字母是',i,max); 


        //使用reduce()方法统计数组中字符串出现次数
        //es6数组归并方法reduce(function(prev,cur,index,array){},传递给函数的初始值[可选])
            //  let names = ['a', 'b', 'a', 'c', 'a'];
            //   let json2=names.reduce((prev,next)=>{
            //       if(next in prev){
            //           prev[next]++
            //       }
            //       else{
            //           prev[next]=1
            //       }
            //       return prev
            //   },{})
            //   console.log(json2) //{a: 3, b: 1, c: 1} 


        //编写通用方法,把URL参数解析为一个对象，如：var url = “http://witmax.cn/index.php?key0=0&key1=1&key2=2″; 
        //  返回数据{key0: "0", key1: "1", key2: "2"}
        // function toJson(hash) {
        //     hash = hash.split('?');
        //     var arr = hash[1].split('&');
        //     var json = {};
        //     for (var i = 0; i < arr.length; i++) {
        //         var arr2 = arr[i].split('=');
        //         var key = arr2[0];
        //         var value = arr2[1];
        //         json[key] = value;
        //     }
        //     return json;
        // }
        // var url = "http://witmax.cn/index.php?key0=0&key1=1&key2=2";
        // console.log(toJson(url));  // {key0: "0", key1: "1", key2: "2"}
    </script>
</body>

</html>